/**
 * 通用类型定义
 */

// 后端统一响应格式
export interface ApiResponse<T = any> {
  /** 状态码 */
  code: number
  /** 消息 */
  message: string
  /** 数据 */
  data: T
  /** 是否成功 */
  success: boolean
}

// 分页结果
export interface PageResult<T> {
  /** 当前页码 */
  pageNum: number
  /** 每页数量 */
  pageSize: number
  /** 总记录数 */
  total: number
  /** 当前页数据 */
  list: T[]
  // 兼容旧版本字段
  records?: T[]
  size?: number
  current?: number
  pages?: number
}

// 分页查询参数
export interface PageQuery<T = any> {
  /** 页码 */
  pageNum?: number
  /** 每页数量 */
  pageSize?: number
  /** 查询数据 */
  data?: T
  /** 排序字段 */
  orderBy?: string
  /** 排序方式 */
  orderMode?: string
}

// 基础查询参数
export interface BaseQuery {
  pageNum?: number
  pageSize?: number
  orderBy?: string
  orderMode?: string
}

// 请求错误类型
export interface RequestError {
  code: number
  message: string
  data?: any
}